package com.yc.testPro;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;

public class TCollection {
	
	public void TestList() {
		List<String> aa = new ArrayList<String>();
		
		aa.add("a");
		aa.add("b");
		aa.add("c");
		System.out.println("size=" + aa.size());
		PrintList(aa);
		System.out.println("---------------------------");
		
		System.out.println("remove=" + aa.remove(1));
		System.out.println("size=" + aa.size());
		PrintList(aa);
		
		
		
	}
	
	private void PrintList(List list) {
		Object item = null;
		for (int i = 0; i < list.size(); i++) {
			item = list.get(i);
			System.out.println(item);
		}
	}
	
	public void testQueue_priority() {
		Queue<String> queue = new PriorityQueue<String>();
		
		//添加元素（add 会在添加失败报错，不建议用）
		queue.offer("a");
		queue.offer("b");
		queue.offer("c");
		queue.offer("d");
		queue.offer("e");
		printQueue(queue);
		System.out.println("-------------1");
		
		System.out.println("poll=" + queue.poll());//返回头元素，并且删除之
		printQueue(queue);
		System.out.println("-------------2");
		
		System.out.println("element=" + queue.element());//返回头元素,如果没有，则会报错
		printQueue(queue);
		System.out.println("-------------3");
		
		System.out.println("peek=" + queue.peek());//返回头元素
		printQueue(queue);
		System.out.println("-------------4");
	}
	
	/**
	 * 总结：常用
	 * 添加：offer
	 * 获取头元素并且删除：poll
	 */
	public void testQueue_linkList() {
		Queue<String> queue = new LinkedList<String>();
		
		//添加元素（add 会在添加失败报错，不建议用）
		queue.offer("a");
		queue.offer("b");
		queue.offer("c");
		queue.offer("d");
		queue.offer("e");
		printQueue(queue);
		System.out.println("-------------1");
		
		System.out.println("poll=" + queue.poll());//返回头元素，并且删除之
		printQueue(queue);
		System.out.println("-------------2");
		
		System.out.println("element=" + queue.element());//返回头元素,如果没有，则会报错
		printQueue(queue);
		System.out.println("-------------3");
		
		System.out.println("peek=" + queue.peek());//返回头元素
		printQueue(queue);
		System.out.println("-------------4");
		
		//
		
	}
	
	private void printQueue(Queue queue) {
		for (Object obj : queue) {
			System.out.println(obj);
		}
	}
	
	
	public void testContains() {
		
	}
	

	public static void main(String[] args) {
		TCollection tc = new TCollection();
		tc.testQueue_priority();

	}

}
